/*******************************************************************************
 * 文件名: DataImport.java
 * 描    述: 数据导入类
 * 创建人: Dean Huang(hudi-112@163.com)
 * 日　期: 2017-12-22
 * 描　述: 文件描述
 * 版　本: 1.0
 *******************************************************************************/

package com.z1.core.data.imports;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import com.z1.core.data.DataConfig;

public abstract class DataImport {

	//是否包含标题
	protected boolean containHeader= true;
	
	//字符集
	protected String charset = "GB2312";
	
	//上传数据对象集
	//上传数据实体对象集
	protected DataConfig dataConfig = null;
	//上传数据集
	protected List<Object> valueList = new ArrayList<Object>();
	
	//当前上传条数
	protected long cur = 0L;
	//每次取数据条数上限
	protected int step = 6000;
	
	/**
	 * 数据导入
	 * @param dataConfig 数据导入配置对象
	 * @param file 数据导入文件
	 * @param containHeader 是否包含标题
	 */
	protected DataImport(DataConfig dataConfig, File file, boolean containHeader) {
		this.dataConfig = dataConfig;
		this.containHeader = containHeader;
	}
	
	/**
	 * 是否还有数据
	 * @return
	 */
	public abstract boolean nextData();
	
	/**
	 * 获取当前读取数据
	 * @return
	 */
	public List<Object> getValueList() {
		return valueList;
	}
	
	/**
	 * 进度(保留2为小数)
	 * @return
	 */
	public abstract double getSeek();
	
	/**
	 * 关闭
	 * @return
	 */
	public abstract void close();
	
}
